<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class email extends CI_Controller {
    private $sessao;

    function __construct(){
        parent::__construct();
        $this->load->model("ClienteModel");
        $this->load->model("FornecedorModel");
        $this->load->model("NewsLetterModel");
        $this->load->model("Selects");
        $this->load->model("Log");

        //Verifica se está logado
        $this->load->helper("auth");
        $this->load->helper("mail");
        //$this->load->helper("mail");
        $this->sessao = a_logado();
    }
    

    public function index($mensagem = ""){

        $this->load->helper("form");
        $this->load->library("form_validation");

        //INICIO CAPTCHA
        $this->load->helper('captcha');

        if($mensagem == "sucesso") $mensagem = "\nOperação realizada com sucesso!\n";
        else $mensagem = "";

        $dados = array(
            "mensagem" => $mensagem,
            "titulo" => "Mandar Email",
            "erro" => ""
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/send_email_view",
            );

        //Validação dos campos
        $this->form_validation->set_rules('assunto', 'Assunto',required);
        $this->form_validation->set_rules('mensagem', 'Mensagem',required);

        if ($this->form_validation->run() == false) 
            $this->load->view('template', $main);

        else{
            $fornecedores = "";
            $clientes = "";
            $newsletters = "";
            if($this->input->post('fornecedores')){
                $fornecedores = $this->FornecedorModel->listar();
                if($fornecedores == false) show_error ("N&atilde;o existem fornecedores cadastrados");
            }
            if($this->input->post('clientes')){
                $clientes = $this->ClienteModel->listar();
                if($clientes == false) show_error ("N&atilde;o existem clientes cadastrados");
            }
            if($this->input->post('newsletters')){
                $newsletters = $this->NewsLetterModel->listar();
                if($newsletters == false) show_error ("N&atilde;o existem pessoas cadastradas no newsletter");
            }
            emailAdmin($fornecedores, $clientes, $newsletters, $this->input->post("assunto"), $this->input->post("mensagem"));

            redirect("admin/email/index/sucesso");
        }
    }


    public function editar($idIntencao = ""){

        if($idIntencao == "") show_404 ();

        $intencao = $this->IntencaoModel->getIntencao($idIntencao);
        if($intencao == false) show_eror("Intenc&atildeo n&atilde;o encontrada");

        $this->load->helper("form");
        $this->load->library("form_validation");

       $row = $this->CategoriaModel->getCategoriaNivel(0);
        if( $row->num_rows() > 0 ) :
            foreach($row->result() as $categoria) {
                $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
            }
        else :
            break;
        endif;

        $dados = array(
            "titulo" => "Edição de Intenção",
            "erro" => "",
            "categorias" => $categorias,
            "intencao" => $intencao
            );

        $main = array(
            "dados" => $dados,
            "link" => "admin/edit_intencao_view",
            );


        //Validação dos campos
        $this->form_validation->set_rules('nome', 'Nome', 'min_length[2]');
        $this->form_validation->set_rules('descricao', 'Descricao', 'required|min_length[3]');
        $this->form_validation->set_rules('data', 'Data', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');


        if ($this->form_validation->run() == false) {
            $this->load->view('template', $main);
        }
       else{
            $campos = array(
                "nome" => $this->input->post("nome"),
                "descricao" => $this->input->post("descricao"),
                "data" => timestamp($this->input->post("data")),
            );
            $categoria = $this->input->post("categoria");
            $campos['idCategoria'] = $categoria[count($categoria)-1];

            $idIntencao = $this->IntencaoModel->update($campos);

            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(), "editou", "intencao", $idIntencao);
            redirect("admin/intencao/index/sucesso");

        }
    }

    public function cliente($idCliente = "", $mensagem = ""){
        $cliente = $this->ClienteModel->getCliente($idCliente);
        if($cliente == false) show_404 ();
        $intencoes = $this->Selects->getIntencaoCliente($idCliente);
        //print_r($intencaos->result());

        if( $intencoes != false ) :
            $linha = "";
            $lista = "";
            foreach( $intencoes->result() as $intencao ) :

                $pais = $this->CategoriaModel->getCategoriaAtualPais($intencao->idCategoria);
                $paisCateg = "";
                if($pais!= false){
                    for($i=count($pais)-1 ; $i>0 ; $i--){
                    $paisCateg .= anchor("all/a_categoria/index/".$pais[$i]->idCategoria, $pais[$i]->nome)."->";
                    }
                }
                $paisCateg .= anchor("all/a_produto/categoria/".$pais[0]->idCategoria, $pais[0]->nome);

                if ($linha == 0)
                    $lista .= "<tr class=\"impar\">\n\t\t";
                else
                    $lista .= "<tr>\n\t\t";
                $lista .= "<td>$paisCateg</td>\n\t";
                $lista .= "<td>".anchor("admin/usuario/editar/$intencao->idUsuario",$intencao->unome)."</td>\n\t";
                $lista .= "<td>$intencao->inome</td>\n\t";
                $lista .= "<td>$intencao->descricao</td>\n\t";
                $lista .= "<td>".anchor("admin/intencao/delete/$intencao->idIntencao/$idCliente", "X")."</td>\n\t";

                if ($linha == 0 ) $linha = 1;
                else $linha = 0;
            endforeach;

        else :
            $lista = "<tr>\n\t";
            $lista .= "<td colspan=\"3\">Você não possui nenhum produto em seus favoritos</td>\n";
            $lista .= "</tr>\n";

        endif;

        if($mensagem == "ja_existente") $mensagem = "\nVocê já tem esse produto como favorito!\n";
        elseif($mensagem == "sucesso") $mensagem = "\n Operação realizada com sucesso! \n";
        else $mensagem = "";

        $dados = array(
            "titulo" => "Gerenciamento de Intenções",
             "lista" => $lista,
             "mensagem" => $mensagem
            );

        $main = array(
            "dados" => $dados,
            "link" => "cliente/c_listar_intencao_view",
            );
        $this->load->view("template",$main);
    }

    
   public function cadastrar(){

        $this->load->helper("form");
        $this->load->library("form_validation");

        $row = $this->CategoriaModel->getCategoriaNivel(0);
        if( $row->num_rows() > 0 ) :
            foreach($row->result() as $categoria) {
                $categorias .= "<option value=\"$categoria->idCategoria\"". set_select("categoria_1", $categoria->nome). ">$categoria->nome</option>\n";
            }
        else :
            break;
        endif;

        $dados = array(
            "titulo" => "Cadastre seu Interesse de Compra",
            "erro" => "",
            "categorias" => $categorias,
            "cap" => $cap,
            "captcha_fail" => ""
            );

        $main = array(
            "dados" => $dados,
            "link" => "usuario/u_cad_intencao_view",
            );


        //Validação dos campos
        $this->form_validation->set_rules('nome', 'Nome', 'min_length[2]');
        $this->form_validation->set_rules('descricao', 'Descricao', 'required|min_length[3]');
        $this->form_validation->set_rules('data', 'Data', 'required');
        $this->form_validation->set_rules('categoria[]', 'Categoria', 'callback_select_check');

        if ($this->form_validation->run() == false) {           
            $this->load->view('template', $main);
        }
        else {
            $campos = array(
                "nome" => $this->input->post("nome"),
                "idUsuario" => $this->sessao->idUsuario,
                "descricao" => $this->input->post("descricao"),
                "data" => $this->input->post("data"),
                "dataCadastro" => timestamp()
            );
            $categoria = $this->input->post("categoria");
            $campos['idCategoria'] = $categoria[count($categoria)-1];

            $idInserido = $this->IntencaoModel->inserir($campos);

            $this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"cadastrou", "intencao", $idInserido);
            redirect("home/index/sucesso");
        }
    }


     public function delete($idIntencao = "", $idCliente = ""){
        if($idIntencao == "") show_error("Você precisa selecionar uma Intencao!");

        $this->IntencaoModel->delete($idIntencao);
        $this->Log->inserir(tipo_usuario(), id_tipo_usuario(),"deletou", "intencao", $idIntencao);

        redirect("admin/intencao/cliente/$idCliente/sucesso");
    }


    /**
     * Método para validar campos do tipo select
     *
     * @param <type> $str
     * @return <type>
     */
    function select_check($str){
        if ($str == '0') :
            $this->form_validation->set_message('select_check', 'O campo %s não pode estar em branco');
            return FALSE;

        else :
            return TRUE;

        endif;
    }


}


